<?php

/**
 * Reclamo filter form base class.
 *
 * @package    reclamos
 * @subpackage filter
 * @author     Your name here
 */
abstract class BaseReclamoFormFilter extends BaseFormFilterPropel
{
  public function setup()
  {
    $this->setWidgets(array(
      'nro_reclamo'                      => new sfWidgetFormFilterInput(),
      'nro_expediente'                   => new sfWidgetFormFilterInput(),
      'legajo_cau'                       => new sfWidgetFormFilterInput(),
      'omic'                             => new sfWidgetFormChoice(array('choices' => array('' => 'yes or no', 1 => 'yes', 0 => 'no'))),
      'distribuidor_id'                  => new sfWidgetFormPropelChoice(array('model' => 'Distribuidor', 'add_empty' => true)),
      'sucursal_id'                      => new sfWidgetFormPropelChoice(array('model' => 'Sucursal', 'add_empty' => true)),
      'horario_contacto'                 => new sfWidgetFormFilterInput(),
      'causa_id'                         => new sfWidgetFormPropelChoice(array('model' => 'Causa', 'add_empty' => true)),
      'tema_id'                          => new sfWidgetFormPropelChoice(array('model' => 'Tema', 'add_empty' => true)),
      'subtema_id'                       => new sfWidgetFormPropelChoice(array('model' => 'Subtema', 'add_empty' => true)),
      'condicion_del_reclamante'         => new sfWidgetFormFilterInput(),
      'fecha_ingreso_oceba'              => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'fecha_recepcion_gerencia'         => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'fecha_recepcion_distribuidor'     => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'sf_guard_user_id'                 => new sfWidgetFormPropelChoice(array('model' => 'sfGuardUser', 'add_empty' => true)),
      'tipo_atencion_id'                 => new sfWidgetFormPropelChoice(array('model' => 'TipoAtencion', 'add_empty' => true)),
      'asunto_id'                        => new sfWidgetFormPropelChoice(array('model' => 'Asunto', 'add_empty' => true)),
      'translado_distribuidor'           => new sfWidgetFormChoice(array('choices' => array('' => 'yes or no', 1 => 'yes', 0 => 'no'))),
      'fecha_translado_distribuidor'     => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'translado_delegacion'             => new sfWidgetFormChoice(array('choices' => array('' => 'yes or no', 1 => 'yes', 0 => 'no'))),
      'fecha_translado_delegacion'       => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'fecha_recepcion_delegacion'       => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'intervino_policia'                => new sfWidgetFormChoice(array('choices' => array('' => 'yes or no', 1 => 'yes', 0 => 'no'))),
      'intervino_distribuidora'          => new sfWidgetFormChoice(array('choices' => array('' => 'yes or no', 1 => 'yes', 0 => 'no'))),
      'intervino_defensa_civil'          => new sfWidgetFormChoice(array('choices' => array('' => 'yes or no', 1 => 'yes', 0 => 'no'))),
      'fecha_incidente'                  => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'cliente_id'                       => new sfWidgetFormPropelChoice(array('model' => 'Cliente', 'add_empty' => true)),
      'ingresar_usuario_de_forma_manual' => new sfWidgetFormChoice(array('choices' => array('' => 'yes or no', 1 => 'yes', 0 => 'no'))),
      'telefono_reclamante'              => new sfWidgetFormFilterInput(),
      'email_reclamante'                 => new sfWidgetFormFilterInput(),
      'nombre_reclamante'                => new sfWidgetFormFilterInput(),
      'nis_reclamante'                   => new sfWidgetFormFilterInput(),
      'es_primera_instancia'             => new sfWidgetFormChoice(array('choices' => array('' => 'yes or no', 1 => 'yes', 0 => 'no'))),
      'nro_reclamo_primera_instancia'    => new sfWidgetFormFilterInput(),
      'resultado'                        => new sfWidgetFormFilterInput(),
      'fecha_realizacion_reclamo'        => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'medio_de_reclamo'                 => new sfWidgetFormFilterInput(),
      'archivado'                        => new sfWidgetFormChoice(array('choices' => array('' => 'yes or no', 1 => 'yes', 0 => 'no'))),
      'estado'                           => new sfWidgetFormFilterInput(),
      'observacion'                      => new sfWidgetFormFilterInput(),
      'descripcion'                      => new sfWidgetFormFilterInput(),
      'horario_interrupcion_servicio'    => new sfWidgetFormFilterInput(),
      'fecha_interrupcion_servicio'      => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'es0800'                           => new sfWidgetFormChoice(array('choices' => array('' => 'yes or no', 1 => 'yes', 0 => 'no'))),
      'motivo_id'                        => new sfWidgetFormPropelChoice(array('model' => 'Motivo', 'add_empty' => true)),
      'fecha_restitucion_servicio'       => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'hora_restitucion_servicio'        => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'fecha_finalizacion'               => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'created_at'                       => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
      'updated_at'                       => new sfWidgetFormFilterDate(array('from_date' => new sfWidgetFormDate(), 'to_date' => new sfWidgetFormDate())),
    ));

    $this->setValidators(array(
      'nro_reclamo'                      => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))),
      'nro_expediente'                   => new sfValidatorPass(array('required' => false)),
      'legajo_cau'                       => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))),
      'omic'                             => new sfValidatorChoice(array('required' => false, 'choices' => array('', 1, 0))),
      'distribuidor_id'                  => new sfValidatorPropelChoice(array('required' => false, 'model' => 'Distribuidor', 'column' => 'id')),
      'sucursal_id'                      => new sfValidatorPropelChoice(array('required' => false, 'model' => 'Sucursal', 'column' => 'id')),
      'horario_contacto'                 => new sfValidatorPass(array('required' => false)),
      'causa_id'                         => new sfValidatorPropelChoice(array('required' => false, 'model' => 'Causa', 'column' => 'id')),
      'tema_id'                          => new sfValidatorPropelChoice(array('required' => false, 'model' => 'Tema', 'column' => 'id')),
      'subtema_id'                       => new sfValidatorPropelChoice(array('required' => false, 'model' => 'Subtema', 'column' => 'id')),
      'condicion_del_reclamante'         => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))),
      'fecha_ingreso_oceba'              => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'fecha_recepcion_gerencia'         => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'fecha_recepcion_distribuidor'     => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'sf_guard_user_id'                 => new sfValidatorPropelChoice(array('required' => false, 'model' => 'sfGuardUser', 'column' => 'id')),
      'tipo_atencion_id'                 => new sfValidatorPropelChoice(array('required' => false, 'model' => 'TipoAtencion', 'column' => 'id')),
      'asunto_id'                        => new sfValidatorPropelChoice(array('required' => false, 'model' => 'Asunto', 'column' => 'id')),
      'translado_distribuidor'           => new sfValidatorChoice(array('required' => false, 'choices' => array('', 1, 0))),
      'fecha_translado_distribuidor'     => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'translado_delegacion'             => new sfValidatorChoice(array('required' => false, 'choices' => array('', 1, 0))),
      'fecha_translado_delegacion'       => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'fecha_recepcion_delegacion'       => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'intervino_policia'                => new sfValidatorChoice(array('required' => false, 'choices' => array('', 1, 0))),
      'intervino_distribuidora'          => new sfValidatorChoice(array('required' => false, 'choices' => array('', 1, 0))),
      'intervino_defensa_civil'          => new sfValidatorChoice(array('required' => false, 'choices' => array('', 1, 0))),
      'fecha_incidente'                  => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'cliente_id'                       => new sfValidatorPropelChoice(array('required' => false, 'model' => 'Cliente', 'column' => 'id')),
      'ingresar_usuario_de_forma_manual' => new sfValidatorChoice(array('required' => false, 'choices' => array('', 1, 0))),
      'telefono_reclamante'              => new sfValidatorPass(array('required' => false)),
      'email_reclamante'                 => new sfValidatorPass(array('required' => false)),
      'nombre_reclamante'                => new sfValidatorPass(array('required' => false)),
      'nis_reclamante'                   => new sfValidatorPass(array('required' => false)),
      'es_primera_instancia'             => new sfValidatorChoice(array('required' => false, 'choices' => array('', 1, 0))),
      'nro_reclamo_primera_instancia'    => new sfValidatorPass(array('required' => false)),
      'resultado'                        => new sfValidatorPass(array('required' => false)),
      'fecha_realizacion_reclamo'        => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'medio_de_reclamo'                 => new sfValidatorPass(array('required' => false)),
      'archivado'                        => new sfValidatorChoice(array('required' => false, 'choices' => array('', 1, 0))),
      'estado'                           => new sfValidatorSchemaFilter('text', new sfValidatorInteger(array('required' => false))),
      'observacion'                      => new sfValidatorPass(array('required' => false)),
      'descripcion'                      => new sfValidatorPass(array('required' => false)),
      'horario_interrupcion_servicio'    => new sfValidatorPass(array('required' => false)),
      'fecha_interrupcion_servicio'      => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'es0800'                           => new sfValidatorChoice(array('required' => false, 'choices' => array('', 1, 0))),
      'motivo_id'                        => new sfValidatorPropelChoice(array('required' => false, 'model' => 'Motivo', 'column' => 'id')),
      'fecha_restitucion_servicio'       => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'hora_restitucion_servicio'        => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'fecha_finalizacion'               => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'created_at'                       => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
      'updated_at'                       => new sfValidatorDateRange(array('required' => false, 'from_date' => new sfValidatorDate(array('required' => false)), 'to_date' => new sfValidatorDate(array('required' => false)))),
    ));

    $this->widgetSchema->setNameFormat('reclamo_filters[%s]');

    $this->errorSchema = new sfValidatorErrorSchema($this->validatorSchema);

    parent::setup();
  }

  public function getModelName()
  {
    return 'Reclamo';
  }

  public function getFields()
  {
    return array(
      'id'                               => 'Number',
      'nro_reclamo'                      => 'Number',
      'nro_expediente'                   => 'Text',
      'legajo_cau'                       => 'Number',
      'omic'                             => 'Boolean',
      'distribuidor_id'                  => 'ForeignKey',
      'sucursal_id'                      => 'ForeignKey',
      'horario_contacto'                 => 'Text',
      'causa_id'                         => 'ForeignKey',
      'tema_id'                          => 'ForeignKey',
      'subtema_id'                       => 'ForeignKey',
      'condicion_del_reclamante'         => 'Number',
      'fecha_ingreso_oceba'              => 'Date',
      'fecha_recepcion_gerencia'         => 'Date',
      'fecha_recepcion_distribuidor'     => 'Date',
      'sf_guard_user_id'                 => 'ForeignKey',
      'tipo_atencion_id'                 => 'ForeignKey',
      'asunto_id'                        => 'ForeignKey',
      'translado_distribuidor'           => 'Boolean',
      'fecha_translado_distribuidor'     => 'Date',
      'translado_delegacion'             => 'Boolean',
      'fecha_translado_delegacion'       => 'Date',
      'fecha_recepcion_delegacion'       => 'Date',
      'intervino_policia'                => 'Boolean',
      'intervino_distribuidora'          => 'Boolean',
      'intervino_defensa_civil'          => 'Boolean',
      'fecha_incidente'                  => 'Date',
      'cliente_id'                       => 'ForeignKey',
      'ingresar_usuario_de_forma_manual' => 'Boolean',
      'telefono_reclamante'              => 'Text',
      'email_reclamante'                 => 'Text',
      'nombre_reclamante'                => 'Text',
      'nis_reclamante'                   => 'Text',
      'es_primera_instancia'             => 'Boolean',
      'nro_reclamo_primera_instancia'    => 'Text',
      'resultado'                        => 'Text',
      'fecha_realizacion_reclamo'        => 'Date',
      'medio_de_reclamo'                 => 'Text',
      'archivado'                        => 'Boolean',
      'estado'                           => 'Number',
      'observacion'                      => 'Text',
      'descripcion'                      => 'Text',
      'horario_interrupcion_servicio'    => 'Text',
      'fecha_interrupcion_servicio'      => 'Date',
      'es0800'                           => 'Boolean',
      'motivo_id'                        => 'ForeignKey',
      'fecha_restitucion_servicio'       => 'Date',
      'hora_restitucion_servicio'        => 'Date',
      'fecha_finalizacion'               => 'Date',
      'created_at'                       => 'Date',
      'updated_at'                       => 'Date',
    );
  }
}
